Emberveil sourcegame/2006Scape Server/src/main/java/com/rs2/console/CommandConsole.java
package com.rs2.console;
import java.util.ArrayList;
import java.util.NoSuchElementException;
import java.util.Scanner;
import com.rs2.Constants;
import com.rs2.console.commands.ListPlayers;
import com.rs2.console.commands.Stop;
/**
*
* @author RS-Emulators
*
*/
public class CommandConsole implements Runnable {
private static CommandConsole cc;
private Thread self;
private Scanner scanner;
// Lazy, not intending to add runtime class loading.
private ArrayList<CommandProcessor> cmds = new ArrayList<CommandProcessor>();
private CommandConsole() {
cmds.add(new ListPlayers());
cmds.add(new Stop());
scanner = new Scanner(System.in);
cc = this;
self = new Thread(cc);
self.start();
}
@Override
public void run() {
System.out.println("Welcome to " + Constants.SERVER_NAME + ".");
while (true) {
System.out.print("> ");
String input = null;
try {
input = scanner.nextLine();
String[] splited = input.split("\\s+");
if (splited[0].isEmpty()) {
System.out.println("Command not recognized. Try 'help'.");
continue;
}
if (splited[0].equalsIgnoreCase("help")) {
for (CommandProcessor cmd : cmds) {
System.out.println(cmd.help());
}
continue;
}
for (CommandProcessor cmd : cmds) {
if (cmd.command(splited)) {
break;
}
}
} catch (NoSuchElementException | NullPointerException e) {
}
}
}
public static CommandConsole getInstance() {
if (cc == null) {
cc = new CommandConsole();
}
return cc;
}
}